Deriving Compilers and Virtual Machines for a Multi-level Language

نویسندگان

  • Atsushi Igarashi
  • Masashi Iwaki
چکیده

We develop virtual machines and compilers for a multi-level language, which supports multi-stage specialization by composing program fragments with quotation mechanisms. We consider two styles of virtual machines—ones equipped with special instructions for code generation and ones without—and show that the latter kind can deal with, more easily, low-level code generation, which avoids the overhead of (runtime) compilation by manipulating instruction sequences, rather than source-level terms, as data. The virtual machines and accompanying compilers are derived by program transformation, which extends Ager et al.’s derivation of virtual machines from evaluators.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

POPLOG ' sTwo - level Virtuol Mochine Support for lnteroctive Longuoges

Poplog is a portable interactive AI development environment available on a "ur}g" of op""ating systems and machines. It includes incremental compilers for bommon Lisp, Pop-ll, Prolog and Standard ML, along with tools for adding new incremental compilers. All the languages share a common development environment and data structures can be shared between programs written in the different languages...

متن کامل

A Exploring Single and Multi-Level JIT Compilation Policy for Modern Machines1

Dynamic or Just-in-Time (JIT) compilation is essential to achieve high-performance emulation for programs written in managed languages, such as Java and C#. It has been observed that a conservative JIT compilation policy is most effective to obtain good runtime performance without impeding application progress on single-core machines. At the same time, it is often suggested that a more aggressi...

متن کامل

Virtual Machines and Abstract Compilers - Towards a Compiler Pattern Language

Because of the increasing gap between modern high-level programming languages and existing hardware, it has often become necessary to introduce intermediate languages and to build virtual machines on top of the hardware. This paper describes the VIRTUAL MACHINE and the ABSTRACT COMPILER patterns, a proposal that captures the essential features underlying the compilation processes based on stagi...

متن کامل

Functional Java Bytecode

We describe the design and implementation of λJVM, a functional representation of Java bytecode that makes data flow explicit, verification simple, and that is well-suited for translation into lower-level representations such as those used in optimizing compilers. It is a good alternative to stack-based Java bytecode for virtual machines or ahead-oftime compilers which optimize methods and prod...

متن کامل

A multi-language compiler framework for Java virtual machines

From this study, a general compiler framework would be defined allowing for a reduction in implementation work when a new compilers for other languages is being developed. The definition of this framework will lead to questions such as how to deal with constructs that do not exist in Java, performance of the derived compilers, and other issues. Another interesting problem would be to allow the ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007